﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using XRM.Security.WebUI.Models.UserSkzi;

namespace XRM.Security.WebUI.Models.UserRegister
{
    public class UserRegisterSkziEditModel
    {
        public int UserRegisterId { get; set; }
        
        [Display( Name = "Отображать  удаленные" )]
        public bool ShowDelete { get; set; }

        public List<UserRegisterSkziItem> SkziList { get; set; }
    }

    public class UserRegisterAddSkziModel : UserSkziModel
    {
    }

    public class UserRegisterDeleteSkziModel : IValidatableObject
    {
        public int Id { get; set; }
        [Display( Name = "Дата удаления" )]
        [Required( ErrorMessage = "Поле 'Дата удаления' обязательное" )]
        public DateTime DeleteDate { get; set; }

        [AllowHtml]
        [Display( Name = "Причина удаления" )]
        [Required( ErrorMessage = "Поле 'Причина удаления' обязательное" )]
        [MaxLength( 500, ErrorMessage = "Максимальная длина поля 'Причина удаления' 500 символов" )]
        public string DeleteReason { get; set; }

        public bool IsEdit { get; set; }

        public IEnumerable<ValidationResult> Validate( ValidationContext validationContext )
        {
            if ( DeleteDate > DateTime.Today )
                yield return new ValidationResult( "Указанная дата удаления еще не наступила", new[] { "DeleteDate" } );
        }
    }
}